[][src]Crate bitvec

bitvec[bool] in overdrive.

This crate provides views into slices of bits that are truly [u1]. Each bit in the data segment is used, unlike [bool] which ignores seven bits out of every byte.

bitvec’s data structures provide strong guarantees about, and fine-grained control of, the bit-level representation of a sequence of memory. The user is empowered to choose the fundamental type underlying the store – u8, u16, u32, or u64 – and the order in which each primitive is traversed – Msb0, from the most significant bit to the least, or Lsb0, from the least significant bit to the most.

This level of control is not necessary for most use cases where users just want to put bits in a sequence, but it is critically important for users making packets that leave main memory and hit some external device like a peripheral controller or a network socket. In order to provide convenience to users for whom the storage details do not matter, bitvec types default to using the local C bitfield ordering and CPU word size.

In addition to providing compact, efficient, and powerful storage and manipulation of bits in memory, the bitvec structures are capable of acting as a queue, set, or stream of bits. They implement the bit-wise operators for Boolean arithmetic, arithmetic operators for 2’s-complement numeric arithmetic, read indexing, bit shifts, and access to the underlying storage fundamental elements as a slice.

(Write indexing is impossible in Rust semantics.)

Modules

boxed

BitBox structure

cursorDeprecated

Old name of the order module.

fields

Parallel bitfield access.

indices

Element bit indexing.

macros

Utility macros for constructing data structures and implementing bulk types.

order

Bit Ordering

prelude

bitvec Prelude

slice

BitSlice Wide Reference

store

Bit management

vec

BitVec structure

Macros

bitbox

Construct a BitBox out of a literal array in source code, like bitvec!.

bits

Construct a &BitSlice out of a literal array in source code, like vec!.

bitvec

Construct a BitVec out of a literal array in source code, like vec!.